#pragma warning disable 108
using System;
using System.Runtime.InteropServices;
using System.Collections.Generic;
using Cephei;
using Cephei.Generic;
using Cephei.QL.Math;
using Cephei.QL.Models;
namespace Cephei.QL.Legacy.Libormarketmodels
{
     // <summary> 
	// ! This class describes a exponential correlation model  \f[ \rho_{i,j}=rho + (1-rho)*e^{(-\beta \|i-j\|)} \f]  References:  Damiano Brigo, Fabio Mercurio, Massimo Morini, 2003, Different Covariance Parameterizations of Libor Market Model and Joint Caps/Swaptions Calibration, (<http://www.business.uts.edu.au/qfrc/conferences/qmf2001/Brigo_D.pdf>)
	// </summary>
    [Guid ("A8711829-409F-47d8-81E5-842DAFA83019"),ComVisible(true)]
	public interface ILmLinearExponentialCorrelationModel : Cephei.QL.Legacy.Libormarketmodels.ILmCorrelationModel
	{
		///////////////////////////////////////////////////////////////
        // Methods
        //
        
		 Double Correlation(UInt64 i, UInt64 j, Double t, Cephei.QL.Math.IArray x);
        
		 UInt64 Factors {get;}
        
		 Boolean IsTimeIndependent {get;}
    }

    // <summary> 
	// ! This class describes a exponential correlation model  \f[ \rho_{i,j}=rho + (1-rho)*e^{(-\beta \|i-j\|)} \f]  References:  Damiano Brigo, Fabio Mercurio, Massimo Morini, 2003, Different Covariance Parameterizations of Libor Market Model and Joint Caps/Swaptions Calibration, (<http://www.business.uts.edu.au/qfrc/conferences/qmf2001/Brigo_D.pdf>) Factory
	// </summary>
   	[ComVisible(true)]
    public interface ILmLinearExponentialCorrelationModel_Factory // : Collection_Factory<ILmLinearExponentialCorrelationModel, ICell<ILmLinearExponentialCorrelationModel>>
    {
        ///////////////////////////////////////////////////////////////
        // Factory methods
        //
        
	    ILmLinearExponentialCorrelationModel Create (UInt64 size, Double rho, Double beta, Microsoft.FSharp.Core.FSharpOption<UInt64> factors);
    }
}

